package com.xu.cloud.common.util;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

/**
 * @author xuguan
 * @since 2025/3/11
 */
public class DecimalUtil {

    public static final int DEFAULT_DIV_SCALE = 2;
    public static final DecimalFormat DEFAULT_DECIMAL_FORMAT = new DecimalFormat("0.00");

    /**
     * 字符串转BigDecimal, 四舍五入, 保留两位小数
     */
    public static BigDecimal str2Decimal(String str) {
        if (str == null || str.length() == 0) {
            return BigDecimal.ZERO;
        }
        return new BigDecimal(str).setScale(DEFAULT_DIV_SCALE, RoundingMode.HALF_UP);
    }

    /**
     * 格式化数字, 四舍五入, 保留两位小数
     */
    public static String fmtDecimal(Number decimal) {
        return DEFAULT_DECIMAL_FORMAT.format(decimal);
    }
}
